/**
*
*/
package org.javacommerce.paypal.servlet;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.javacommerce.paypal.PDT;
import org.javacommerce.paypal.PayPalValidationException;
import org.javacommerce.paypal.validation.PDTValidation;
/**
* @author Michael Blanton (mike@mikeblanton.com)
*/
public abstract class AbstractPDTServlet extends BaseServlet {
/**
*
*/
private static final long serialVersionUID = 1781832335496547484L;
private static final Log LOG = LogFactory.getLog(AbstractPDTServlet.class);
/**
*
*/
public AbstractPDTServlet() {
super();
// TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see org.javacommerce.paypal.servlet.BaseServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
protected void doGet(HttpServletRequest _request, HttpServletResponse _response)
throws ServletException, IOException {
try {
if (LOG.isDebugEnabled()) {
LOG.debug("PDT received, verifying");
}
String[] response = PDTValidation.getInstance().verifyHttpRequest(_request);
if (LOG.isDebugEnabled()) {
LOG.debug("PDT verified, processing");
}
PDT pdt = new PDT(_request, response);
processPDT(pdt);
writeObject(pdt, _response);
} catch (UnsupportedEncodingException e) {
writeException("PDT-1000", "Error verifying PDT", null, e, _response);
_response.setStatus(SC_NOT_ACCEPTABLE);
} catch (IOException e) {
writeException("PDT-1001", "Error verifying PDT", null, e, _response);
_response.setStatus(SC_NOT_ACCEPTABLE);
} catch (PayPalValidationException e) {
writeException("PDT-1002", "Error verifying PDT", null, e, _response);
_response.setStatus(SC_NOT_ACCEPTABLE);
}
}
/* (non-Javadoc)
* @see org.javacommerce.paypal.servlet.BaseServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
protected void doPost(HttpServletRequest _request, HttpServletResponse _response)
throws ServletException, IOException {
notAllowed(_response, "GET");
}
/* (non-Javadoc)
* @see org.javacommerce.paypal.servlet.BaseServlet#doPut(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
protected void doPut(HttpServletRequest _request, HttpServletResponse _response)
throws ServletException, IOException {
notAllowed(_response, "GET");
}
protected abstract void processPDT(PDT _pdt);
}